package org.jgs1904.practice;


import org.junit.jupiter.api.Test;

/**
 * @author: 默苍璃
 * @date: 2022-09-09 13:35
 * <p>
 * for 循环练习
 * ps :应该学习廖大 分详细一点
 */
public class For {

    /**
     * 给定一个数组，请用for循环倒序输出每一个元素：
     */
    @Test
    public void test1() {
        int[] ns = {1, 4, 9, 16, 25};
        for (int i = ns.length - 1; i >= 0; i--) {
            System.out.println(ns[i]);
        }
    }


    /**
     * 利用for each循环对数组每个元素求和：
     */
    @Test
    public void test2() {
        int[] ns = {1, 4, 9, 16, 25};
        int sum = 0;
        for (int n : ns) {
            sum += n;
        }
        System.out.println(sum);
    }


    /**
     * 圆周率π可以使用公式计算：
     * π/4=1−1/3+1/5−1/7+1/9−…
     * 请利用for循环计算π：
     */
    @Test
    public void test3() {
        double pi = 0;
        int f = 1;
        for (int i = 1; i < 999999; i += 2) {

            if (f % 2 == 1) {
                pi += 1.0 / i;
            }

            if (f % 2 == 0) {
                pi -= 1.0 / i;
            }
            f++;
        }
        System.out.println(pi * 4);
    }


    /**
     * 简化写法
     */
    @Test
    public void test4() {
        double pi = 0;
        for (int i = 1; i < 999999; i += 4) {
            pi += 1.0 / i;
            pi -= 1.0 / (i + 2);
        }
        System.out.println(pi * 4);
    }

}
